/*
 * @Author: 陈德基
 * @Date: 2021-11-15 14:13:40
 * @LastEditTime: 2021-11-18 09:30:40
 * @Description: 
 * @FilePath: \copy_gsy_github_app_flutter\lib\page\welcome\controller.dart
 * 联系方式：
 * wx: melody_2009
 * qq: 7815171323 
 */
import 'package:copy_gsy_github_app_flutter/repository/user_repository.dart';
import 'package:copy_gsy_github_app_flutter/routes/app_pages.dart';
import 'package:get/get.dart';

import 'index.dart';

class WelcomeController extends GetxController {
  WelcomeController();

  /// 响应式成员变量

  final state = WelcomeState();

  /// 成员变量

  /// 事件

  /// 生命周期

  ///在 widget 内存中分配后立即调用。
  ///你可以用它来为控制器初始化 initialize 一些东西。
  @override
  void onInit() {
    super.onInit();
    // new 对象
    // 初始静态数据
  }

  ///在 onInit() 之后调用 1 帧。这是进入的理想场所
  ///导航事件，例如 snackbar、对话框或新route，或
  ///async 异步请求。
  @override
  void onReady() {
    super.onReady();
    // async 拉取数据
    Future.delayed(const Duration(milliseconds: 500), () {
      state.title = 'Welcome'.tr;
      state.fontsize = 60.0;
    });
    Future.delayed(const Duration(seconds: 1, microseconds: 500), () {
      state.title = 'get_github'.tr;
      state.fontsize = 60.0;
    });
  }

  ///在 [onDelete] 方法之前调用。 [onClose] 可能用于
  ///处理控制器使用的资源。就像 closing events 一样，
  ///或在控制器销毁之前的流。
  ///或者处置可能造成一些内存泄漏的对象，
  ///像 TextEditingControllers、AnimationControllers。
  ///将一些数据保存在磁盘上也可能很有用。
  @override
  void onClose() {
    super.onClose();
    // 1 stop & close 关闭对象
    // 2 save 持久化数据
  }

  ///dispose 释放内存
  @override
  void dispose() {
    super.dispose();
    // dispose 释放对象
  }

  void loginOrMain() async {
    var res = await UserRepository.getUserInfoLocal();
    if (res != null && res.result) {
      Get.offNamed(AppRoute.HOME);
    } else {
      Get.offNamed(AppRoute.LOGIN);
    }
  }
}
